package com.repairService.core.base;

import com.repairService.core.enums.ResponseCode;
import com.repairService.core.model.ResponseJson;

public class BaseController {

    /**
     * 渲染失败数据
     *
     * @return result
     */
    protected ResponseJson renderError(String code, String msg) {
        return new ResponseJson.Builder().setMsg(msg).setStatus(code).build();
    }

    /**
     * 渲染失败数据
     *
     * @return result
     */
    protected ResponseJson renderError(String code, String msg, Object obj) {
        return new ResponseJson.Builder().setMsg(msg).setStatus(code).setObj(obj).build();
    }

    /**
     * 渲染失败数据（带消息）
     *
     * @param msg 需要返回的消息
     * @return result
     */
    protected ResponseJson renderError(String msg) {
        ResponseJson result = renderError(ResponseCode.RESPONSE_STATE_500.code(), msg);
        return result;
    }

    /**
     * 渲染成功数据
     *
     * @return result
     */
    protected ResponseJson renderSuccess() {
        return new ResponseJson.Builder().setStatus(ResponseCode.RESPONSE_STATE_200.code())
                .setMsg(ResponseCode.RESPONSE_STATE_200.msg()).build();
    }

    /**
     * 渲染成功数据（带信息）
     *
     * @param msg 需要返回的信息
     * @return result
     */
    protected ResponseJson renderSuccess(String msg) {
        return new ResponseJson.Builder().setStatus(ResponseCode.RESPONSE_STATE_200.code()).setMsg(msg).build();
    }

    /**
     * 渲染成功数据（带数据）
     *
     * @param obj 需要返回的对象
     * @return result
     */
    protected ResponseJson renderSuccess(Object obj) {
        return new ResponseJson.Builder().setStatus(ResponseCode.RESPONSE_STATE_200.code())
                .setMsg(ResponseCode.RESPONSE_STATE_200.msg()).setObj(obj).build();
    }

    /**
     * 渲染成功数据（带数据）
     *
     * @param obj 需要返回的对象
     * @return result
     */
    protected ResponseJson renderSuccess(String msg, Object obj) {
        return new ResponseJson.Builder().setStatus(ResponseCode.RESPONSE_STATE_200.code()).setMsg(msg).setObj(obj)
                .build();
    }
}
